home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Family Forum 253
/
SOMC Family Forum 253 - Disc 1.iso
/
BMPE.RUL
< prev
next >
Wrap
Text File
|
1997-08-20
|
11KB
|
413 lines
declare
// Constant declarations.
#define SPACE_REQUIRED 5000000 // Disk space in bytes.
#define APP_NAME "Best Math Program"
#define PROGRAM_FOLDER_NAME "Richard Scarry"
#define APPBASE_PATH "RSBMPE\\"
#define APPBASE_PATH_WIN32S "Program Files\\Richard Scarry\\Best Math Program"
#define COMPANY_NAME "Richard Scarry"
#define PRODUCT_NAME "Best Math Program"
#define PRODUCT_VERSION "1.0"
#define UNINSTALL_NAME "Richard Scarry's Best Math Program"
#define PRODUCT_KEY "Best Math Program"
#define INITFILE_NAME "Busytown.ini"
#define HTMDIR "BMPEHTM"
#define HTMFILE "web.htm"
// Global variable declarations.
STRING svFolder, svDir, szMsg, szFileSet, szTitle, szCD, svUninstLogFile, szVersion;
STRING svTarget, svProgram, szParam, szShortPath, szTemp, svAppPath;
STRING szResult, szShare, szShareEx;
STRING szBitmap1[1024], szBitmap2[1024];
STRING szSampler, szSampPath, szReadme;
STRING szProgram,szSource,szIconFile,szGrade,szTextFile;
STRING szVolumeName,szWorkDir,szFileName,szUnInstall,szQTime;
BOOL bSpaceOk, bWinNT, bWin32s, bWin16s, bWin95;
NUMBER nResult, nTemp, nColors, nlist,nGrade;
// Function declarations.
prototype SetupScreen();
prototype CheckRequirements();
program
StartHere:
ParsePath(szCD, SRCDIR, DISK);
szVolumeName = szCD;
//GetSystemInfo(VOLUMELABEL,nTemp,szVolumeName );
//if (szVolumeName = "Foggy") then
// szGrade="2";
// nGrade=2;
//else
//szGrade="1";
//nGrade=1;
//endif;
//StrToNum(nGrade,szGrade);
GetProfString(WINDIR^INITFILE_NAME, APP_NAME ,"WorkingDir",szWorkDir);
if (szWorkDir != "") then
GetProfString(WINDIR^INITFILE_NAME, APP_NAME ,"AppName",szFileName);
FindFile(szWorkDir,szFileName,szFileName) ;
if szFileName != "" then
Disable( BACKGROUND );
szMsg = "Would you like to play " + APP_NAME + " now ?" ;
if (AskYesNo(szMsg,YES) = YES) then
//MessageBox( szFileName, INFORMATION );
LaunchApp(szWorkDir^szFileName, "");
endif;
exit;
endif;
endif;
InstallationInfo( COMPANY_NAME, PRODUCT_NAME , PRODUCT_VERSION, PRODUCT_KEY );
SetupScreen();
Enable( DIALOGCACHE );
WelcomeDlg:
Disable( BACKBUTTON );
Welcome( "Welcome to " + APP_NAME, 0 );
Enable( BACKBUTTON );
CheckRequirements();
InstallExe:
// Ask user for a destination location for the installation.
GetTargetDirectory:
if (bWin95) then
svTarget = TARGETDISK ^ APPBASE_PATH_WIN32S;
szProgram = "RSMath95.exe";
szUnInstall = "UnInst.exe";
szQTime = "Qt32inst.exe";
else
svTarget = TARGETDISK ^ APPBASE_PATH;
szProgram = "RSMath31.exe";
szUnInstall = "UnInst16.exe";
szQTime = "Qt16inst.exe";
endif;
szTextFile = "Readme.txt";
if ( AskDestPath( "", szMsg,
svTarget, 0 ) = 12 ) then
goto WelcomeDlg;
endif;
// Perform space check of target drive.
bSpaceOk = TRUE;
if (GetDiskSpace( svTarget ) < SPACE_REQUIRED) then
szMsg = "There is not enough space available on the disk\n" +
"'" + svTarget + "' \n" +
"Please free up some space or change the target location\n" +
"to a different disk";
MessageBox( szMsg, WARNING );
bSpaceOk = FALSE;
endif;
// If not enough space, ask user to try again.
if (bSpaceOk = FALSE) goto GetTargetDirectory;
// Set the App Paths key for the main program.
//if (bWin95) then
svAppPath = svTarget;
svProgram = svTarget ^ szProgram;
//MessageBox( svAppPath, WARNING );
//Set the App Paths key for the main program.
RegDBSetItem(REGDB_APPPATH, svAppPath );
RegDBSetItem(REGDB_APPPATH_DEFAULT, svProgram );
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
DeinstallStart(svAppPath, svUninstLogFile, APP_NAME, 0);
RegDBSetItem(REGDB_UNINSTALL_NAME, UNINSTALL_NAME);
szFileSet = "General";
szTemp = SRCDIR;
TARGETDIR = svTarget;
Enable( STATUS );
//Enable( INDVFILESTATUS );
Disable( INDVFILESTATUS );
SetStatusWindow( -1, "Copying program files..." );
StatusUpdate(ON,10);
CopyFile(szTextFile, szTextFile);
//StatusUpdate(ON,40);
//XCopyFile(HTMDIR^"\\*.*","*.*",INCLUDE_SUBDIR);
if (FindFile(WINDIR, szUnInstall, szUnInstall ) < 0) then
TARGETDIR = WINDIR;
StatusUpdate(ON,50);
CopyFile( szUnInstall , szUnInstall);
TARGETDIR = svTarget;
endif;
StatusUpdate(ON,100);
CopyFile(szProgram, szProgram);
Delay (1);
Disable( DIALOGCACHE );
Disable( FEEDBACK_FULL );
Disable( STATUS);
Disable( STATUSDLG);
InstallProgramItems:
//Add program icons
svFolder=PROGRAM_FOLDER_NAME;
SelectFolder("Folder Selection" , PROGRAM_FOLDER_NAME , svFolder );
ShowProgramFolder(svFolder, SW_NORMAL);
svProgram = svTarget ^ szTextFile;
LongPathToQuote(svProgram, TRUE);
AddFolderIcon( svFolder,APP_NAME + " Read Me", svProgram, svTarget, "", 0, "", REPLACE );
LongPathToShortPath(svUninstLogFile);
szTemp = WINDIR ^ szUnInstall + " -f" + svUninstLogFile ;
//LongPathToQuote(szTemp, TRUE);
AddFolderIcon( svFolder,"UnInstall " + APP_NAME , szTemp, WINDIR , "", 0, "", REPLACE );
//svProgram = SRCDIR ^ HTMDIR^HTMFILE;
//LongPathToQuote(svProgram, TRUE);
//AddFolderIcon( svFolder,APP_NAME + " Online", svProgram, SRCDIR^HTMDIR,SRCDIR^HTMDIR^"MM.ico", 0, "", REPLACE );
//LongPathToShortPath(szShortPath);
svProgram = svTarget ^ szProgram;
szShortPath=svProgram;
LongPathToShortPath(szShortPath);
//LongPathToQuote(svProgram, TRUE);
AddFolderIcon( svFolder, APP_NAME, szShortPath, svTarget,SRCDIR^"Busytown.ico" , 0 , "", REPLACE );
//WriteProfString(WINDIR^INITFILE_NAME, APP_NAME, "exeName", szShortPath);
WriteProfString(WINDIR^INITFILE_NAME, APP_NAME, "version", "1.0");
WriteProfString(WINDIR^INITFILE_NAME, APP_NAME, "AutoRun", "ON");
WriteProfString(WINDIR^INITFILE_NAME, APP_NAME, "WorkingDir" , svTarget);
WriteProfString(WINDIR^INITFILE_NAME, APP_NAME, "AppName" , szProgram);
szMsg = "Program installed successfully!\n\n\n\nYou may run " + APP_NAME +
" by double-clicking" +
" on the program icon located in "+ svFolder +" Program Group.\n\n" +
"Please check the README file for any last minute information concerning the program.";
MessageBox(szMsg, INFORMATION);
//Last - Check user's current setup for VGA and tell them to change to higher.
if (nColors = 16) then
szMsg = APP_NAME + " requires your video driver to be set " +
"to at least 256 colors. Consult the readme file for " +
"information on changing your current display setting.";
MessageBox(szMsg, WARNING);
endif;
if (nColors > 256) then
szMsg = APP_NAME+ " runs best when your video driver is set " +
"to 256 colors. Consult the readme file for " +
"information on changing your current display setting.";
MessageBox(szMsg, WARNING);
endif;
LaunchAppAndWait(szQTime,"" , WAIT );
szMsg = "Would you like to run " + APP_NAME + " ?" ;
szTemp =svProgram;
Disable( BITMAP256COLORS );
Disable( BACKGROUND );
//LongPathToQuote(szTemp , TRUE);
if (AskYesNo(szMsg,YES) = YES) then
LaunchApp(szTemp, "");
endif;
exit;
/*---------------------------------------------------------------------------*\
*
* Function: SetupScreen
*
* Purpose: This function will set up the screen look. This includes
* colors, fonts, text to be displayed, etc.
*
*
* Input:
*
* Returns:
*
* Comments:
\*---------------------------------------------------------------------------*/
function SetupScreen()
number nDx, nDy;
begin
GetExtents( nDx, nDy );
Enable( FULLWINDOWMODE );
Enable( INDVFILESTATUS );
Enable( BITMAP256COLORS );
Enable( DIALOGCACHE );
SetColor( BACKGROUND, BK_BLUE ); // Dark blue.
SetColor( STATUSBAR, BLUE ); // Bright blue.
SetTitle( APP_NAME+" Setup", 0, BACKGROUNDCAPTION ); // Caption bar text.
Enable( BACKGROUND );
//PlaceBitmap("Setup.bmp",1,nDx/2 - 320,nDy/2 - 240 , UPPER_RIGHT);
Delay( 1 );
end;
/*---------------------------------------------------------------------------*\
*
* Function: CheckRequirements
*
* Purpose: This function will check all minimum requirements for the
* application being installed. If any fail, then the user
* is informed and the installation is terminated.
*
*
* Input:
*
* Returns:
*
* Comments:
\*---------------------------------------------------------------------------*/
function CheckRequirements()
number nvDx, nvDy;
number nvResult;
STRING svResult;
begin
// Check screen resolution.
GetExtents( nvDx, nvDy );
if (nvDy < 480) then
MessageBox( "This program requires VGA or better resolution.", WARNING );
exit;
endif;
// Determine the target system's operating system.
GetSystemInfo( OS, nvResult, svResult );
bWinNT = FALSE;
bWin32s = FALSE;
bWin16s = FALSE;
if (nvResult = IS_WINDOWSNT) then
bWinNT = TRUE; // Running Windows NT.
elseif (nvResult = IS_WIN32S) then
bWin32s = TRUE; // Running Win32s.
elseif (nvResult = IS_WINDOWS95) then
bWin95 = TRUE; // Running Win95.
elseif (nvResult = IS_WINDOWS) then
bWin16s = TRUE; // Running Windows.
endif;
end;
/*---------------------------------------------------------------------------*\
*
* Function:
*
* Purpose:
*
* Input:
*
* Returns:
*
* Comments:
\*---------------------------------------------------------------------------*/
//function PlaySound()
//begin
// PlaceBitmap( szBitmap1, 1, CENTERED, CENTERED, CENTERED | BITMAPICON );
// LaunchApp( "PLAYSND.EXE", "" );
// LaunchAppAndWait("PLAYSND.EXE", "",NOWAIT);
// Delay (7);
//end;